package com.peas.platform.module.icims.base.approve.enums;

import com.peas.platform.common.core.enums.BaseEnum;
import com.peas.platform.common.core.enums.CommonElType;
import com.peas.platform.module.icims.base.sys.enums.Module;
import lombok.Getter;

public enum ApproveBusiness implements BaseEnum {

    budgetProjectTwo("1001", "二级项目申报", CommonElType.success, Module.budget),
    budgetOne("1002", "预算编制（一上）", CommonElType.success, Module.budget),
    budgetTwo("1003", "预算编制（二上）", CommonElType.success, Module.budget),
    budgetNew("1004", "年中新预算", CommonElType.success, Module.budget),
    budgetAdjust("1005", "年中预算调整", CommonElType.success, Module.budget),

    expenditureKpi("2001", "指标单", CommonElType.success, Module.expenditure),
    expenditureQuota("2002", "额度下达单", CommonElType.success, Module.expenditure),
    expenditureAdjustment("2003", "调整单", CommonElType.success, Module.expenditure),
    expenditureApplication("2004", "用款申请单", CommonElType.success, Module.expenditure),
    expenditureReimbursement("2005", "报账单", CommonElType.success, Module.expenditure),
    expenditureReimbursementOther("2006", "其他报账单", CommonElType.success, Module.expenditure),

    contractInitial("3001", "初始合同", CommonElType.success, Module.contract),
    contractMain("3002", "主合同", CommonElType.success, Module.contract),
    contractSupplemental("3003", "合同补充协议", CommonElType.success, Module.contract),
    contractChange("3004", "合同变更", CommonElType.success, Module.contract),
    contractCash("3005", "合同请款", CommonElType.success, Module.contract),
    contractBorrow("3006", "合同借阅", CommonElType.success, Module.contract),
    contractChecking("3007", "合同验收", CommonElType.success, Module.contract),
    contractInterrupt("3008", "合同中止", CommonElType.success, Module.contract),
    contractTerminate("3009", "合同终止", CommonElType.success, Module.contract),
    ;

    private final String key;
    private final String value;
    private final CommonElType elTagType;
    @Getter
    private final Module module;

    ApproveBusiness(String key, String value, CommonElType elTagType, Module module) {
        this.key = key;
        this.value = value;
        this.elTagType = elTagType;
        this.module = module;
    }

    @Override
    public String getKey() {
        return this.key;
    }

    @Override
    public String getValue() {
        return this.value;
    }

    @Override
    public CommonElType getElTagType() {
        return elTagType;
    }

}
